package com.china.cnlongdb.server.threads.init;

import java.util.Iterator;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.china.cnlongdb.basic.constant.ConcurrentDataMap;
import com.china.cnlongdb.basic.constant.LongDbConstant;
import com.china.cnlongdb.basic.entity.database.LongTableEntity;
import com.china.cnlongdb.server.connect.LongDbConnect;

/**
 * 系统名称：UpdateTableRowThread.java
 * 模块名称：
 * 模块描述：开启【批量插入数据后更新总表行数】监听
 * 功能列表：
 * 模块作者：ZOUYONG
 * 开发时间：2018年12月5日 下午10:06:04
 * 模块路径：com.china.cnlongdb.server.threads.init.UpdateTableRowThread
 * 更新记录：
 */
public class UpdateTableRowThread extends Thread {

	private final Logger logger = (Logger) LoggerFactory.getLogger(UpdateTableRowThread.class);

	private LongDbConnect connect;
	public UpdateTableRowThread(LongDbConnect connect) {
		logger.debug(LongDbConstant.longdbDefaultName + "初始化[表更新行数据监听]...");
		this.connect = connect;
	}
	
	@Override
	public void run() {
		try {
			int result = 0;
			for(Iterator<String> iter = ConcurrentDataMap.dataFileNewRowCountMap.keySet().iterator(); iter.hasNext(); ) {
				String tableName = iter.next();
				LongTableEntity table = ConcurrentDataMap.dataFileNewRowCountMap.get(tableName);
				try {
					// 更新表的配置文件内容
					connect.getCreateOperator().updateTableConfigFileContent(table, true);
				} catch(Exception e) {
					logger.debug("更新表的配置文件内容操作异常：" + e.getMessage());
				}
				result++;
			}
			logger.debug("此次更新表数据文件行数，文件数量[" + result + "]条！");
		} catch(Exception e) {
			logger.debug("开启【批量插入数据后更新总表行数】监听异常啦：" + e.getMessage(), e);
		}
	}
	
}
